package com.restaurant.application.customer.support;

import com.nebutown.base.data.ViewUpdate;
import com.nebutown.supporthome.AbstractImpl;
import com.nebutown.supporthome.CmdCapsule;
import com.restaurant.application.customer.Customer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class AbstractCustomer extends AbstractImpl implements Customer {

    private static final Logger logger = LoggerFactory.getLogger(Customer.class);

    public final Class<?> getEffectiveInterface() {
        return Customer.class;
    }

    public Logger getLogger() {
        return logger;

    }

    private static final String privateDataType = "CustomerData";

    public CustomerData getData() {
        return escort.getData(CustomerData.class);
    }

    public void setData(CustomerData data) {
        escort.setData(data);
    }

    public static CmdCapsule CMD_MODIFY = new CmdCapsule("modify", 0, CustomerData.class);

    public abstract ViewUpdate modify(CustomerData modify, int[] seq);

    public static CmdCapsule CMD_ADDBLACK = new CmdCapsule("addBlack", 1, null);

    public abstract ViewUpdate addBlack(int[] seq);

    public static CmdCapsule CMD_MOVEOUTBLACK = new CmdCapsule("moveOutBlack", 2, null);

    public abstract ViewUpdate moveOutBlack(int[] seq);
}
